package com.qnw.CardGroupManagement.util;

import java.util.*;

public class CardUtil
{
	
	private static String[] exType={"融合","同调","超量","连接"};

	public static boolean isEx(int cardType16){
		List<String> type=CardMessage.getCardType(cardType16);
		for(String name:type){
			for(String s:exType){
				if(name.equals(s)){
					return true;
				}
			}
		}
		return false;
	}
	
	/*
	 *根据数据库中的level值获取等级,左刻度,右刻度
	 *type_card:数据库中卡片类型值
	 *dj:数据库中卡片等级值
	 *def:数据库中卡片守备力
	 */
	public static String[] getLevels(int type_card,String dj,String def){

		if ((type_card & Integer.valueOf("4000000", 16))!=0)
		{
			String s=Integer.toBinaryString(Integer.parseInt(def));
			int n=s.length()-s.replaceAll("1", "").length();
			return new String[]{n+"","0","0"};
		}else{
			//等级存在数据库中的为10进制数,&0xff得到等级,右移24位再&0xff得到左刻度,右移16位再&0xff得到右刻度
			//等级计算公式：(等级&0xff)+((左刻度&0xff)<<16)+((右刻度&0xff)<<24)
			long level=Integer.parseInt(dj);
			return new String[]{getLevel(level),getLeftScale(level),getRightScale(level)};
		}

	}


	//将等级,灵摆刻度转化为储存在数据库中的等级
	public static String getLevel(int dj,int zk,int yk){
		return (dj&0xff)+((zk&0xff)<<16)+((yk&0xff)<<24)+"";
	}
	//根据数据库中储存的等级获取左刻度
	public static String getLeftScale(long level){
		return ((level>>24)&0xff)+"";
	}

	//根据数据库中储存的等级获取右刻度
	public static String getRightScale(long level){
		return ((level>>16)&0xff)+"";
	}

	//根据数据库中储存的等级获取等级
	public static String getLevel(long level){
		return (level&0xff)+"";
	}
	
	
}
